using UnityEngine;

[CreateAssetMenu(fileName = "new PlayerData", menuName = "Inventory/new PlayData/Base Data")]
public class PlayerData : ScriptableObject
{
    [Header("Move State")] public float _moveSpeed = 15f;

    [Header("Jump State")] public float _jumpVelocity = 15;

    public int _countOfJumpLeft = 2;

    [Header("Wall Jump State")] public float _wallJumpVelocity = 20f;

    public float _wallJumpTime = 0.4f;
    public Vector2 _wallJumpAngle = new(1, 2);

    [Header("In Air State")] public float _coyoteTime = 0.2f;

    [Header("Wall Slide State")] public float _wallSlideVelocity = 2f;

    [Header("Wall climb State")] public float _wallClimbVelocity = 3f;

    [Header("Ledge Climb State")] public Vector2 _startOffset;

    public Vector2 _stopOffset;

    [Header("Dash State")] public float _dashCoolDowm = 0.5f;

    public float _maxHoldTime = 1f;
    public float _holdTimeScale = 0.25f;
    public float _dashTime = 0.2f;
    public float _dashVelocity = 30f;
    public float _drag = 10f; //MARKET:ӵ�������ָи���
    public float _dashEndYMultiplier = 0.2f;
    public float _distBetweenAfterImages = 0.5f;

    [Header("Crouch State")] public float _crouchMoveVelocity = 6f;

    public float _crouchCollisionHeight = 3.24f;
    public float _standCollisionHeiht = 6.48f;

    [Header("Attack State")] public float _maxContinueAttackWaitTime = 0.5f;

    [Header("Check Variables")] public float _groundCheckRadius = 0.3f;

    public float _ceilingCheckRadius = 0.2f;
    public float _wallCheckDistance = 100f;
    public Vector2 _groundCheckSize = new(1, 1);
    public Vector2 _ceilingCheckSize = new(1, 1);

    public LayerMask _whatIsGround;
}